package com.shujia.base;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.resps.Tuple;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class RedisAPI {
    public static void main(String[] args) {
        //创建与redis的链接对象
        // public Jedis(String host, int port)
        Jedis jedis = new Jedis("192.168.233.101", 7000);

        System.out.println("成功获取与redis的链接：" + jedis);

        //string
//        jedis.set("name", "小虎");
//        jedis.set("yzm","21341");
//        jedis.expire("yzm",60);
//        String s = jedis.get("name");
//        System.out.println(s);
//        //判断一个键是否存在
//        boolean b = jedis.exists("name");
//        System.out.println(b);
//        //判断有几个键存在
//        long l = jedis.exists("name", "list1", "set1", "hash1", "hash9");
//        System.out.println(l);

        // list
//        jedis.lpush("list1", "hello", "world", "java", "hello", "flink");
//        List<String> list1 = jedis.lrange("list1", 0, -1);
//        System.out.println("list1:" + list1);

        // set
//        jedis.sadd("set3","hello", "world", "java", "hello", "flink");
//        Set<String> set3 = jedis.smembers("set3");
//        System.out.println("set3:"+set3);

        // zset
        //long zadd(String var1, Map<String, Double> var2);
//        HashMap<String, Double> map1 = new HashMap<>();
//        map1.put("李刚",99.0);
//        map1.put("江川",91.0);
//        map1.put("钱志强",99.0);
//        map1.put("祝帅",89.0);
//        map1.put("吴问强",95.0);
//        jedis.zadd("scores",map1);
//        List<Tuple> scores = jedis.zrevrangeByScoreWithScores("scores", 200, 0);
//        for (Tuple valueAndScore : scores) {
//            String value = valueAndScore.getElement();
//            double score = valueAndScore.getScore();
//            System.out.println(value + "-" + score);
//        }


        // hash
//        HashMap<String, String> map1 = new HashMap<>();
//        map1.put("name","李刚");
//        map1.put("age","18");
//        map1.put("gender","男");
//        map1.put("clazz","数加32期");
//        jedis.hset("stu1Info",map1);
        Map<String, String> stu1Info = jedis.hgetAll("stu1Info");
        Set<Map.Entry<String, String>> entries = stu1Info.entrySet();
        for (Map.Entry<String, String> entry : entries) {
            String key = entry.getKey();
            String value = entry.getValue();
            System.out.println(key + "_" + value);
        }


        // 释放资源
        jedis.close();
    }
}
